@@ -17,6 +17,7 @@ from account.models import UserInfo  | 
            ||
| 17 | 17 | 
                from coupon.models import UserCouponInfo  | 
            
| 18 | 18 | 
                from integral.models import SaleclerkSubmitLogInfo  | 
            
| 19 | 19 | 
                from mch.models import AdministratorInfo, ConsumeInfoSubmitLogInfo, ModelInfo, DistributorInfo  | 
            
| 20 | 
                +from member.models import GoodsOrderInfo  | 
            |
| 20 | 21 | 
                from statistic.models import ConsumeModelSaleStatisticInfo, ConsumeSaleStatisticInfo, ConsumeUserStatisticInfo  | 
            
| 21 | 22 | 
                from utils.error.errno_utils import (AdministratorStatusCode, ProductBrandStatusCode, ProductCouponStatusCode,  | 
            
| 22 | 23 | 
                ProductMachineStatusCode, UserStatusCode)  | 
            
                @@ -668,8 +669,56 @@ def distributor_list(request):  | 
            ||
| 668 | 669 | 
                 | 
            
| 669 | 670 | 
                     infos = list(DistributorInfo.objects.filter(status=True).values_list('distributor_name', flat=True).distinct().order_by('distributor_name'))
               | 
            
| 670 | 671 | 
                 | 
            
| 671 | 
                -    return response(200, 'Get Model List Success', u'获取型号列表成功', data={
               | 
            |
| 672 | 
                +    return response(200, 'Get Model List Success', u'获取经销商列表成功', data={
               | 
            |
| 672 | 673 | 
                'distributors': infos  | 
            
| 673 | 674 | 
                })  | 
            
| 674 | 675 | 
                 | 
            
| 676 | 
                +def member_goods_order(request):  | 
            |
| 677 | 
                +    brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
               | 
            |
| 678 | 
                +    admin_id = request.POST.get('admin_id', '')
               | 
            |
| 679 | 
                +    phone = request.POST.get('phone', '')
               | 
            |
| 680 | 
                +    good_type = request.POST.get('good_type', '')
               | 
            |
| 681 | 
                +    page = request.POST.get('page', 1)
               | 
            |
| 682 | 
                +    num = request.POST.get('num', 20)
               | 
            |
| 683 | 
                +  | 
            |
| 684 | 
                + if brand_id != settings.KODO_DEFAULT_BRAND_ID:  | 
            |
| 685 | 
                + return response(ProductBrandStatusCode.BRAND_NOT_MATCH)  | 
            |
| 686 | 
                +  | 
            |
| 687 | 
                + try:  | 
            |
| 688 | 
                + administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True)  | 
            |
| 689 | 
                + except AdministratorInfo.DoesNotExist:  | 
            |
| 690 | 
                + return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)  | 
            |
| 691 | 
                +  | 
            |
| 692 | 
                +    orders = GoodsOrderInfo.objects.filter(phone__icontains=phone, status=True).order_by('-created_at')
               | 
            |
| 693 | 
                +  | 
            |
| 694 | 
                + if good_type:  | 
            |
| 695 | 
                + orders = orders.filter(good_type=good_type)  | 
            |
| 696 | 
                +  | 
            |
| 697 | 
                + count = orders.count()  | 
            |
| 698 | 
                + orders, left = pagination(orders, page, num)  | 
            |
| 699 | 
                + orders = [order.admindata for order in orders]  | 
            |
| 700 | 
                +  | 
            |
| 701 | 
                +    return response(200, 'Get Member Goods Order List Success', u'获取会员商品订单列表成功', data={
               | 
            |
| 702 | 
                + 'orders': orders,  | 
            |
| 703 | 
                + 'left': left,  | 
            |
| 704 | 
                + 'count': count  | 
            |
| 705 | 
                + })  | 
            |
| 706 | 
                +  | 
            |
| 707 | 
                +def member_goods_order_update(request):  | 
            |
| 708 | 
                +    brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
               | 
            |
| 709 | 
                +    admin_id = request.POST.get('admin_id', '')
               | 
            |
| 710 | 
                +    order_id = request.POST.get('order_id', '')
               | 
            |
| 711 | 
                +    tracking_number = request.POST.get('tracking_number', '')
               | 
            |
| 712 | 
                +  | 
            |
| 713 | 
                + if brand_id != settings.KODO_DEFAULT_BRAND_ID:  | 
            |
| 714 | 
                + return response(ProductBrandStatusCode.BRAND_NOT_MATCH)  | 
            |
| 715 | 
                +  | 
            |
| 716 | 
                + try:  | 
            |
| 717 | 
                + administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True)  | 
            |
| 718 | 
                + except AdministratorInfo.DoesNotExist:  | 
            |
| 719 | 
                + return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)  | 
            |
| 720 | 
                +  | 
            |
| 721 | 
                + GoodsOrderInfo.objects.filter(pk=order_id, status=True).update(tracking_number=tracking_number)  | 
            |
| 722 | 
                +  | 
            |
| 723 | 
                + return response(200, 'Get Member Goods Order Update Success', u'获取会员商品订单修改成功')  | 
            |
| 675 | 724 | 
                 | 
            
                @@ -322,6 +322,9 @@ urlpatterns += [  | 
            ||
| 322 | 322 | 
                 | 
            
| 323 | 323 | 
                url(r'^admin/list/model$', admin_views.model_list, name='model_list'),  | 
            
| 324 | 324 | 
                url(r'^admin/list/distributor$', admin_views.distributor_list, name='distributor_list'),  | 
            
| 325 | 
                +  | 
            |
| 326 | 
                + url(r'^admin/member/goods/order$', admin_views.member_goods_order, name='member_goods_order'),  | 
            |
| 327 | 
                + url(r'^admin/member/goods/order/update$', admin_views.member_goods_order_update, name='member_goods_order_update'),  | 
            |
| 325 | 328 | 
                ]  | 
            
| 326 | 329 | 
                 | 
            
| 327 | 330 | 
                urlpatterns += [  | 
            
                @@ -135,6 +135,23 @@ class GoodsOrderInfo(BaseModelMixin):  | 
            ||
| 135 | 135 | 
                 | 
            
| 136 | 136 | 
                def __unicode__(self):  | 
            
| 137 | 137 | 
                return unicode(self.pk)  | 
            
| 138 | 
                +  | 
            |
| 139 | 
                + @property  | 
            |
| 140 | 
                + def admindata(self):  | 
            |
| 141 | 
                + good = GoodsInfo.objects.get(good_id=self.good_id)  | 
            |
| 142 | 
                +        return {
               | 
            |
| 143 | 
                + 'order_id': self.pk,  | 
            |
| 144 | 
                + 'good_id': self.good_id,  | 
            |
| 145 | 
                + 'good_name': good.title,  | 
            |
| 146 | 
                + 'good_type': good.good_type,  | 
            |
| 147 | 
                + 'user_id': self.user_id,  | 
            |
| 148 | 
                + 'user_name': self.name,  | 
            |
| 149 | 
                + 'user_phone': self.phone,  | 
            |
| 150 | 
                + 'user_address': self.address,  | 
            |
| 151 | 
                + 'tracking_number': self.tracking_number,  | 
            |
| 152 | 
                + 'integral': self.integral,  | 
            |
| 153 | 
                + 'created_at': tc.local_string(utc_dt=self.created_at, format='%Y-%m-%d %H:%M'),  | 
            |
| 154 | 
                + }  | 
            |
| 138 | 155 | 
                 | 
            
| 139 | 156 | 
                 | 
            
| 140 | 157 | 
                class RightInfo(BaseModelMixin):  |